Generating a haptic model

ABSTRACT

A method is disclosed for generating a haptic model including at least one virtual object which can be presented using both a visual display device and a haptic device to a user. Information of at least one candidate virtual object is obtained, the candidate virtual object including both a haptic representation and a visual representation. For each of the at least one candidate virtual object, reachability data, indicating whether the candidate virtual object is reachable for the user is determined. For each of the at least one candidate virtual object, visibility data, indicating whether the candidate virtual object is visible for the user is determined. A haptic model is generated selectively including at least one candidate virtual object, the inclusion of each candidate virtual object being based on its respective reachability and visibility data. The haptic model is provided to be rendered.

TECHNICAL FIELD

The present disclosure relates to a method, haptic model generators, aserver, a user device, a computer program and a computer program productfor generating a haptic model comprising at least one virtual object.

BACKGROUND

Augmented reality (AR) is foreseen to become an integral technology inthe networked society and potently disrupt the consumer electronicsmarket. AR is here used to denote the concept of presenting acombination of real-world objects and computer-rendered content to auser. Specifically, one implementation of AR implies layering one ormore virtual objects on top of reality, on a user's view of the worldvia a see-through Head Mounted Display (HMD). One application of AR isto allow users to see and interact remotely and in 3D (three dimension),as if each participant share the same physical space. Hence, remotecommunication and interaction could become as natural as face-to-facecommunication.

A popular example of AR is the 2016 phenomenon of Pokemon Go, which hastruly put forward the advantages of AR in the way people interact witheach other and with video games.

In 2016, Microsoft launched Hololens, a mobile AR HMD. Several otherHMDs are being launched by other companies including Meta and MagicLeap, which are set to improve the AR technology even further.

In Virtual reality (VR) a user is immersed in a virtual environmentwhere all content is virtual. Some of VR applications are gaming, 360degree live video consumption of concerts, sports, etc., educational andtraining purposes, among others. VR content is displayed via anon-see-through HMD as, e.g., the Oculus Rift, HTC Vive, Google Daydreamor Samsung GearVR.

Even though AR and VR technology has improved in the last years, fullimmersion cannot be achieved if users cannot feel the virtual content.Several haptic devices are currently being developed, in particularlyfor AR and VR applications. Haptic perception comprises kinesthetic andtactile sense and relates to the sensation of the size, shape, mass,texture and stiffness of physical objects, surfaces, etc. Kinestheticinformation refers to the information perceived when moving joints,muscles and tendons, while tactile information refers to informationretrieved via the skin. By utilizing devices with kinesthetic and/ortactile actuators, a user is able to perceive all the above propertiesof objects. A haptic model is generally a 2D or 3D model comprisinggeometric and physical characteristics of an object or environment. Thegeometric component can be encoded in an 2D or 3D image, where for eachpixel or a group of pixels (voxels for the 3D case), are encoded withphysical properties of the object such as texture, friction, stiffness,temperature, etc.

Such haptic devices will allow the user to perceive geometric andphysical properties of the virtual content such as the size, form,weight, texture, friction, stiffness, and temperature. The proposeddevices are mobile and able to be worn by the user e.g. ashand/finger-worn, complete gloves, vests, smartwatches, and evenexoskeletons. Handheld devices such as smartphones and tables are alsobeing enabled with basic haptic feedback capabilities.

AR and VR applications with haptic feedback are very computationallyintensive. It would be of great benefit if the resource requirements forsuch applications could be reduced.

SUMMARY

It is an object to reduce processing required for generation of a hapticmodel comprising at least one virtual object, without significantlyimpacting user experience.

According to a first aspect, it is presented a method for generating ahaptic model including at least one virtual object which can bepresented using both a visual display device and a haptic device to auser. The method is performed by a haptic model generator and comprisesthe steps of: obtaining information of at least one candidate virtualobject, wherein the candidate virtual object includes both a hapticrepresentation and a visual representation; determining, for each one ofthe at least one candidate virtual object, reachability data, indicatingwhether the candidate virtual object is reachable for the user;determining, for each one of the at least one candidate virtual object,visibility data, indicating whether the candidate virtual object isvisible for the user; generating a haptic model selectively comprisingat least one candidate virtual object, the inclusion of each candidatevirtual object being based on its respective reachability data andvisibility data; and providing the haptic model to be rendered by thehaptic device.

The step of determining visibility data may comprise determining anycandidate virtual object to be not visible which would be visuallyblocked by a real-world object situated between the user and theperceived position of the candidate virtual object.

A frequency of performing the method may be based on a position of theuser.

The step of generating a haptic model may comprise generating a modelwhich excludes all candidate virtual objects which are consideredunreachable.

The step of generating a haptic model may comprise generating a modelwhich excludes all candidate virtual objects which are considered notvisible.

The step of generating a haptic model may comprise generating a modelwhich excludes candidate virtual objects which are not considered to bein focus for the user.

The step of determining reachability data may be based on an orientationand position of a limb of the user, experiencing the haptic device, inrelation to the candidate virtual object.

The step of determining reachability data may be based on a direction ofmovement of a limb of the user experiencing the haptic device, inrelation to the candidate virtual object.

The step of determining reachability data may be based on how dynamic amovement of the limb of the user, experiencing the haptic device, is.

The step of determining reachability data may be based on how dynamic amovement of the candidate virtual object is.

The step of determining reachability data may be based on a detectedactivity of the user.

The haptic model generator may be provided in a server.

The haptic model generator may be provided in a user device comprisingthe haptic device.

According to a second aspect, it is presented a haptic model generatorfor generating a haptic model including at least one virtual objectwhich can be presented using both a visual display device and a hapticdevice to a user. The haptic model generator comprises: a processor; anda memory storing instructions that, when executed by the processor,cause the haptic model generator to: obtain information of at least onecandidate virtual object, wherein the candidate virtual object includesboth a haptic representation and a visual representation; determine, foreach one of the at least one candidate virtual object, reachabilitydata, indicating whether the candidate virtual object is reachable forthe user; determine, for each one of the at least one candidate virtualobject, visibility data, indicating whether the candidate virtual objectis visible for the user; generate a haptic model selectively comprisingat least one candidate virtual object, the inclusion of each candidatevirtual object being based on its respective reachability data andvisibility data; and provide the haptic model to be rendered by thehaptic device.

The instructions to determine visibility data may comprise instructionsthat, when executed by the processor, cause the haptic model generatorto determine any candidate virtual object to be not visible which wouldbe visually blocked by a real-world object situated between the user andthe perceived position of the candidate virtual object.

The haptic model generator may further comprise instructions that, whenexecuted by the processor, cause the haptic model generator to repeatthe execution of instructions at a frequency based on a position of theuser.

The instructions to generate a haptic model may comprise instructionsthat, when executed by the processor, cause the haptic model generatorto generate a model which excludes all candidate virtual objects whichare considered unreachable.

The instructions to generate a haptic model may comprise instructionsthat, when executed by the processor, cause the haptic model generatorto generate a model which excludes all candidate virtual objects whichare considered not visible.

The instructions to generate a haptic model may comprise instructionsthat, when executed by the processor, cause the haptic model generatorto generate a model which excludes candidate virtual objects which arenot considered to be in focus for the user.

The instructions to determine reachability data may compriseinstructions that, when executed by the processor, cause the hapticmodel generator to determine reachability data based on an orientationand position of a limb of the user, experiencing the haptic device, inrelation to the candidate virtual object.

The instructions to determine reachability data may compriseinstructions that, when executed by the processor, cause the hapticmodel generator to determine reachability data based on a direction ofmovement of a limb of the user experiencing the haptic device, inrelation to the candidate virtual object. The instructions to determinereachability data may comprise instructions that, when executed by theprocessor, cause the haptic model generator to determine reachabilitydata based on how dynamic a movement of the limb of the user,experiencing the haptic device, is.

The instructions to determine reachability data may compriseinstructions that, when executed by the processor, cause the hapticmodel generator to determine reachability data based on how dynamic amovement of the candidate virtual object is.

The instructions to determine reachability data may compriseinstructions that, when executed by the processor, cause the hapticmodel generator to determine reachability data based on a detectedactivity of the user.

According to a third aspect, it is presented a haptic model generatorcomprising: means for obtaining information of at least one candidatevirtual object, wherein the candidate virtual object includes both ahaptic representation and a visual representation; means fordetermining, for each one of the at least one candidate virtual object,reachability data, indicating whether the candidate virtual object isreachable for the user; means for determining, for each one of the atleast one candidate virtual object, visibility data, indicating whetherthe candidate virtual object is visible for the user; means forgenerating a haptic model selectively comprising at least one candidatevirtual object, the inclusion of each candidate virtual object beingbased on its respective reachability data and visibility data, thehaptic model including at least one virtual object which can bepresented using both a visual display device and a haptic device to auser; and means for providing the haptic model to be rendered by thehaptic device.

According to a fourth aspect, it is presented a server comprising thehaptic model generator according to the second or third aspects.

According to a fifth aspect, it is presented a user device comprisingthe haptic model generator according to any one of the second or thirdaspects. According to a sixth aspect, it is presented a computer programfor generating a haptic model including at least one virtual objectwhich can be presented using both a visual display device and a hapticdevice to a user. The computer program comprises computer program codewhich, when run on a haptic model generator causes the haptic modelgenerator to: obtain information of at least one candidate virtualobject, wherein the candidate virtual object includes both a hapticrepresentation and a visual representation; determine, for each one ofthe at least one candidate virtual object, reachability data, indicatingwhether the candidate virtual object is reachable for the user;determine, for each one of the at least one candidate virtual object,visibility data, indicating whether the candidate virtual object isvisible for the user; generate a haptic model selectively comprising atleast one candidate virtual object, the inclusion of each candidatevirtual object being based on its respective reachability data andvisibility data; and provide the haptic model to be rendered by thehaptic device.

According to a seventh aspect, it is presented a computer programproduct comprising a computer program according to the sixth aspect anda computer readable means on which the computer program is stored.

According to an eighth aspect, it is presented a system for generating ahaptic model comprising a server comprising the haptic model generatoraccording to any one of claims 14 to 25 and a user device comprising ahaptic device configured to render the haptic model.

Generally, all terms used in the claims are to be interpreted accordingto their ordinary meaning in the technical field, unless explicitlydefined otherwise herein. All references to “a/an/the element,apparatus, component, means, modules, step, etc.” are to be interpretedopenly as referring to at least one instance of the element, apparatus,component, means, modules, step, etc., unless explicitly statedotherwise. The steps of any method disclosed herein do not have to beperformed in the exact order disclosed, unless explicitly stated.

BRIEF DESCRIPTION OF THE DRAWINGS

The example embodiments of the invention are now described, withreference to the accompanying drawings, in which:

FIG. 1 is a schematic diagram illustrating an environment whereembodiments presented herein can be applied;

FIG. 2 is a schematic diagram illustrating components of a user devicewhich can be applied in the environment of FIG. 1;

FIGS. 3A-B are schematic drawings illustrating embodiments of where thehaptic model generator can be implemented;

FIG. 4 is a flow chart illustrating embodiments of methods forgenerating a haptic model including at least one virtual objectperformed by the haptic model generator of FIGS. 3A-B;

FIG. 5 is a schematic diagram illustrating components of the hapticmodel generator of FIGS. 3A-B;

FIG. 6 is a schematic diagram showing functional modules of the hapticmodel generator of FIGS. 3A-B according to one embodiment; and

FIG. 7 shows one example of a computer program product comprisingcomputer readable means.

DETAILED DESCRIPTION

Embodiments of the invention will now be described more fullyhereinafter with reference to the accompanying drawings, in whichcertain embodiments of the invention are shown. This invention may,however, be embodied in many different forms and should not be construedas limited to the embodiments set forth herein; rather, theseembodiments are provided by way of example so that this disclosure willbe thorough and complete, and will fully convey the scope of theinvention to those skilled in the art. Like numbers refer to likeelements throughout the description.

FIG. 1 is a schematic diagram illustrating an environment whereembodiments presented herein can be applied. A user 5 here wears avisual display device 2, such as a head mounted display (HMD), whichallows the user 5 to see both real-world objects 11 a-b and virtualobjects 10 a-c. Moreover, the user wears a haptic device 8, which allowsthe user to experience virtual objects haptically. Each virtual object10 a-c has both a visual representation and a haptic representation. Thevisual representation contains information about how the virtual objectlooks. The haptic representation contains information about shape andtexture. Optionally, the haptic representation also contains informationabout additional aspects, such as temperature, weight, friction andstiffness. For instance, the haptic device 8 can be in the form of aglove with haptic feedback actuators, a kinesthetic device or a tactilesmartphone. The haptic device 8 can communicate with the visual displaydevice 2 over a wireless link 4. The haptic device 8 contains sensors(e.g. accelerometers, gyros, etc.) e.g. as part of an inertiameasurement unit (IMU) to determine the position and orientation of thehaptic device in a three dimensional space, to thereby determine whenand how to haptically render any virtual objects within reach.Furthermore, a camera of the visual display device 2 can track the handsof the user in a reliable manner, also when the user wears a hapticdevice. Other methods to track the haptic device may be used, such asindoor positioning methods like Ultra Wide Band (UWB) localization (forthe 3D position) and then use the IMU to know the orientation. Using thecamera, the ability to determine the position of the haptic device isimproved.

The virtual objects 10 a-c do not exist in reality but are computerrendered and the real-world objects 11 a-11 b are physical objects whichare not computer-rendered, i.e. not virtual. The virtual objects 10 a-care optionally configurable to never be haptically experienced. Forinstance, a virtual object being a screen rendering a video clip doesnot need to be haptically experienced and can instead benefit from notlimiting movement or operations of the hands/limbs of the user. Usingthe visual display device 2 and the haptic device 8, the user 5 can bothsee and touch the virtual objects 10 a-c. This combination is verypowerful for the user experience. In this example, a first real-worldobject 11 a is a table and a second real-world object is a screendivider 11 a. Furthermore, there are three virtual objects 10 a-c here:a first virtual object 10 a in the form of a cone. A second virtualobject 10 b is in the form of a ball and a third virtual object 10 c isalso in the form of a ball. The screen divider 11 a blocks the thirdvirtual object 10 c. Hence, even if the user 5 were to be standing bythe table 11 b, the user would not be able to reach the third virtualobject 10 c. As explained in more detail below, using the embodimentsherein, both visibility and reachability data are used in order toexclude certain objects from a haptic model, where the haptic modelcontains all virtual objects to be haptically rendered by the hapticdevice 8.

The visual display device can e.g. be implemented using an HMD such asthe Microsoft Hololens or Oculus Rift. It is also possible that thevisual display device is implemented using a smartphone and/or a tabletcomputer. It is to be noted that the term ‘computer’ used herein is tobe interpreted as any electronic device with digital processingcapabilities, regardless of size. Hence, the term computer comprisesdevices such as servers, desktop computers, laptop computers, tabletcomputers, smart phones, mobile phones, smart watches, etc.

When the user 5 can experience a combination of real-world objects andcomputer-rendered content, the visual display device 2 and the hapticdevice 8 allows for a plethora of applications in the field oftenreferred to augmented reality (AR). A similar environment is virtualreality (VR). However, in VR, the user essentially only experiencesvirtual objects, i.e. the visual display device 2 only renders virtualobjects and blocks the vision of the user from seeing any real-worldobjects. However, the user would still feel the real-world objects 11a-b if the hand of the user is moved to touch one of the real-worldobjects 11 a-b.

The visual display device 2 and the haptic device 8 are connected to anetwork 9. The network 9 can e.g. be a local area network (LAN) and/or awide area network (WAN) such as the Internet. A server 3 is alsoconnected to the network 9. The server 3 provides content for renderingby the visual display device 2 and the haptic device 8. The virtualobjects 10 a which are to be rendered by the haptic device form a hapticmodel. The haptic model is generated by a haptic model generator, whichcan form part of the server 3, the visual display device 2, the hapticdevice 8, or the haptic model generator can be a separate device.

While only three virtual objects 10 a-c are shown in FIG. 1, there maybe a great number of virtual objects in the haptic model. Each objectcan be very complex, both in terms of haptic and visual appearance.According to embodiments presented herein, a subset of the virtualobjects can form part of the haptic model, to be haptically renderedbased on visibility and reachability for the user 5.

FIG. 2 is a schematic diagram illustrating components of a user device 6which can be applied in the environment of FIG. 1. The visual displaydevice 2 and the haptic device 8 are collectively denoted a user device6. The user device 6 can be considered to be an AR device or a VRdevice. The user device 6 is used by the user to experience virtualobjects both visually, using the visual display device 2, andhaptically, using the haptic device 8. The user device 6 and the server3 of FIG. 1 is here denoted a system.

FIGS. 3A-B are schematic drawings illustrating embodiments of where thehaptic model generator can be implemented. The haptic model generatorcan be applied in FIG. 1 to generate the haptic model used by the hapticdevice.

In FIG. 3A, the haptic model generator 1 is provided in the server 3.

In FIG. 3B, the haptic model generator 1 is provided in the user device6. The haptic model generator 1 may then form part of the haptic device8, the visual display device 2 or in a separate device forming part ofthe user device 6.

FIG. 4 is a flow chart illustrating embodiments of methods forgenerating a haptic model including at least one virtual objectperformed by the haptic model generator of FIGS. 3A-B. As explainedabove, the at least one virtual object can be presented using both avisual display device and a haptic device to a user. The method can beperformed by the server or in the user device.

In an obtain virtual object info step 40, information of at least onecandidate virtual object is obtained. The candidate virtual objectincludes both a haptic representation and a visual representation. Thisinformation can e.g. be obtained from the server.

In a determine reachability step 42, reachability data is determiningfor each one of the at least one candidate virtual object. Thereachability data indicates whether the candidate virtual object isreachable for the user. This depends on a position of the user and theposition of the haptic device.

The determination of reachability data is optionally based on anorientation and position of a limb of the user (experiencing the hapticdevice) in relation to the candidate virtual object. For instance, whenthe haptic device is in the form of a glove, virtual objects on the openside of the hand of the user can be more easily reachable than virtualobjects on the side of the back of the hand. Hence, consideringorientation allows a more accurate determination of what virtual objectsare reachable or not.

The determination of reachability data is optionally based on adirection of movement of a limb of the user experiencing the hapticdevice, in relation to the candidate virtual object. For instance, ifthe limb (e.g. hand or arm) is moving in a certain direction, virtualobjects in that direction are more easily reachable than objects in theopposite direction, due to the inertia of movement of the limb.

The determination of reachability data is optionally based on howdynamic a movement of the limb of the user (experiencing the hapticdevice) is. In other words, if the limb is moving quickly, a region ofreachability is greater than if the limb is completely still.

The determination of reachability data is optionally based on howdynamic a movement of the candidate virtual object is. Hence, if thevirtual object is moving quickly, the virtual object may suddenly appearwithin reach of the user.

The determination of reachability data is optionally based on a detectedactivity of the user. For instance, if the detected activity task is astatic task (e.g. sitting in the desk), the reachability region can besmaller, while if the user is performing a dynamic activity, such asplaying sports, the reachability region can be larger.

Also, it may be that if a user is performing an activity A, the usermight not want to feel objects for activity B. For example, if the useris working by a desk and there is a virtual object (e.g. a virtualpuppy) just next to the chair, and the user for some reason moveshis/her arms to touch it, the user might not want to get a hapticfeedback since that will distract the user from his/her current activityof working.

The activity can be detected via sensors of user devices for example,motion sensors, visual sensors, WiFi signals, etc.

In a determine visibility step 44, visibility data is determined foreach one of the at least one candidate virtual object. The visibilitydata indicates whether the candidate virtual object is visible for theuser.

Optionally, any candidate virtual object is (i.e. all virtual objectsare) determined to be not visible, which is visually blocked by areal-world object situated between the user and the perceived positionof the candidate virtual object. For instance, the third virtual object10 c of FIG. 1 would thereby be determined to be not visible.

The definition of the viewable and reachable regions can e.g. be givenby cones with given aperture angles from the body position of the user.In other embodiments, the definition of the viewable and reachableareas, may be given by other regular or irregular geometric shapes.

The angles, distances and regions for the limits of reachability andvisibility may be manually adjusted by the user (with or without visualrepresentation of such regions at the configuration step), or theseregions may be adapted automatically, based on the inferred user bodyposition and arm reach (the arm length, common user movements, etc.) fordefining the physically reachable areas. Optionally, the user eye (focusarea) is tracked and/or field of view limitations of the visual displaydevice are considered, to further adapt the region of visibility.

In one embodiment, the regions of visibility and reachability aredependent on application and/or user context. For instance, this candepend on when the user is sitting on a chair and working at a desk,walking outdoor or indoor, etc. since in each of these scenarios, theviewable and reachable regions vary.

In a generate haptic model step 46, a haptic model selectivelycomprising at least one candidate virtual object, is generated. Theinclusion (or exclusion) of each candidate virtual object is based onboth its respective reachability data and visibility data.

Optionally, the generation of the haptic model comprises generating amodel which excludes all candidate virtual objects which are consideredunreachable.

Optionally, the generation of the haptic model comprises generating amodel which excludes all candidate virtual objects which are considerednot visible.

Optionally, the generation of the haptic model comprises generating amodel which excludes candidate virtual objects which are not consideredto be in focus for the user. In other words, if the user is looking farleft, virtual object on the far right could be excluded from the hapticmodel.

In a provide haptic model step 48, the haptic model is provided to berendered by the haptic device. The haptic device is then able tohaptically render the virtual object(s) forming part of the hapticmodel. Any virtual object not part of the haptic model will not behaptically rendered by the haptic device.

The frequency of which the method is performed can be based on aposition and/or movement of the user. For instance, when the user ismoving quickly, the method can be repeated often to adapt to a changinghaptic environment.

By generating the haptic model based on visibility and reachability forthe user, many resources are saved. Processing requirements andbandwidth requirements are reduced. This also reduces powerrequirements, prolonging battery life for the visual display device andthe haptic device.

The haptic model is performed on demand, whereby the amount of hapticdata processing can be tailored based on the current visibility andreachability status of each virtual object.

FIG. 5 is a schematic diagram illustrating components of the hapticmodel generator 1 of FIGS. 3A-B. It is to be noted that the haptic modelgenerator 1 may share one or more of these components with a hostdevice, e.g. the server 3 or the user device 6.

A processor 60 o is provided using any combination of one or more of asuitable central processing unit (CPU), multiprocessor, microcontroller,digital signal processor (DSP), application specific integrated circuitetc., capable of executing software instructions 66 stored in a memory64, which can thus be a computer program product. The processor 60 o canbe configured to execute the method described with reference to FIG. 4above.

The memory 64 can be any combination of read and write memory (RAM) andread only memory (ROM). The memory 64 also comprises persistent storage,which, for example, can be any single one or combination of magneticmemory, optical memory, solid state memory or even remotely mountedmemory.

A data memory 67 is also provided for reading and/or storing data duringexecution of software instructions in the processor 6 o. The data memory67 can be any combination of read and write memory (RAM) and read onlymemory (ROM).

The haptic model generator 1 further comprises an I/O interface 62 forcommunicating with other external entities.

Other components of the haptic model generator 1 are omitted in ordernot to obscure the concepts presented herein.

FIG. 6 is a schematic diagram showing functional modules of the hapticmodel generator of FIGS. 3A-B according to one embodiment. The modulesare implemented using software instructions such as a computer programexecuting in the haptic model generator. Alternatively or additionally,the modules are implemented using hardware, such as any one or more ofan ASIC (Application Specific Integrated Circuit), an FPGA (FieldProgrammable Gate Array), or discrete logical circuits. The modulescorrespond to the steps in the method illustrated in FIG. 4.

An obtainer 70 corresponds to step 40. A determiner 72 corresponds tosteps 42 and 44. A generator 76 corresponds to step 46. A provider 78corresponds to step 48.

FIG. 7 shows one example of a computer program product comprisingcomputer readable means. On this computer readable means a computerprogram 91 can be stored, which computer program can cause a processorto execute a method according to embodiments described herein. In thisexample, the computer program product is an optical disc, such as a CD(compact disc) or a DVD (digital versatile disc) or a Blu-Ray disc. Asexplained above, the computer program product could also be embodied ina memory of a device, such as the computer program product 66 of FIG. 5.While the computer program 91 is here schematically shown as a track onthe depicted optical disk, the computer program can be stored in any waywhich is suitable for the computer program product, such as a removablesolid state memory, e.g. a Universal Serial Bus (USB) drive.

The embodiments of the invention have mainly been described above withreference to a few embodiments. However, as is readily appreciated by aperson skilled in the art, other embodiments than the ones disclosedabove are equally possible within the scope of the invention, as definedby the appended patent claims.

1. A method for generating a haptic model including at least one virtualobject which can be presented using both a visual display device and ahaptic device to a user, the method being performed by a haptic modelgenerator and comprising: obtaining information of at least onecandidate virtual object, wherein the candidate virtual object includesboth a haptic representation and a visual representation; determining,for each one of the at least one candidate virtual object, reachabilitydata, indicating whether the candidate virtual object is reachable forthe user; determining, for each one of the at least one candidatevirtual object, visibility data, indicating whether the candidatevirtual object is visible for the user; generating a haptic modelselectively comprising at least one candidate virtual object, theinclusion of each candidate virtual object being based on its respectivereachability data and visibility data; and providing the haptic model tobe rendered by the haptic device.
 2. The method according to claim 1,wherein determining visibility data comprises determining any candidatevirtual object to be not visible which would be visually blocked by areal-world object situated between the user and the perceived positionof the candidate virtual object.
 3. The method according to claim 1,wherein a frequency of performing the method is based on a position ofthe user.
 4. The method according to claim 1, wherein generating ahaptic model comprises generating a model which excludes all candidatevirtual objects which are considered unreachable.
 5. The methodaccording to claim 1, wherein generating a haptic model comprisesgenerating a model which excludes all candidate virtual objects whichare considered not visible. 6.-11. (canceled)
 12. The method accordingto claim 1, wherein the haptic model generator is provided in a server.13. The method according to claim 1, wherein the haptic model generatoris provided in a user device comprising the haptic device.
 14. A hapticmodel generator for generating a haptic model including at least onevirtual object which can be presented using both a visual display deviceand a haptic device to a user, the haptic model generator comprising: aprocessor; and a memory storing instructions that, when executed by theprocessor, cause the haptic model generator to, obtain information of atleast one candidate virtual object, wherein the candidate virtual objectincludes both a haptic representation and a visual representation,determine, for each one of the at least one candidate virtual object,reachability data, indicating whether the candidate virtual object isreachable for the user, determine, for each one of the at least onecandidate virtual object, visibility data, indicating whether thecandidate virtual object is visible for the user, generate a hapticmodel selectively comprising at least one candidate virtual object, theinclusion of each candidate virtual object being based on its respectivereachability data and visibility data, and provide the haptic model tobe rendered by the haptic device.
 15. The haptic model generatoraccording to claim 14, wherein the instructions to determine visibilitydata comprise instructions that, when executed by the processor, causethe haptic model generator to determine any candidate virtual object tobe not visible which would be visually blocked by a real-world objectsituated between the user and the perceived position of the candidatevirtual object.
 16. The haptic model generator according to claim 14,further comprising instructions that, when executed by the processor,cause the haptic model generator to repeat the execution of instructionsat a frequency based on a position of the user.
 17. The haptic modelgenerator according to claim 14, wherein the instructions to generate ahaptic model comprise instructions that, when executed by the processor,cause the haptic model generator to generate a model which excludes allcandidate virtual objects which are considered unreachable.
 18. Thehaptic model generator according to claim 14, wherein the instructionsto generate a haptic model comprise instructions that, when executed bythe processor, cause the haptic model generator to generate a modelwhich excludes all candidate virtual objects which are considered notvisible.
 19. The haptic model generator according to claim 14, whereinthe instructions to generate a haptic model comprise instructions that,when executed by the processor, cause the haptic model generator togenerate a model which excludes candidate virtual objects which are notconsidered to be in focus for the user.
 20. The haptic model generatoraccording to claim 14, wherein the instructions to determinereachability data comprise instructions that, when executed by theprocessor, cause the haptic model generator to determine reachabilitydata based on an orientation and position of a limb of the user,experiencing the haptic device, in relation to the candidate virtualobject.
 21. The haptic model generator according to claim 14, whereinthe instructions to determine reachability data comprise instructionsthat, when executed by the processor, cause the haptic model generatorto determine reachability data based on a direction of movement of alimb of the user experiencing the haptic device, in relation to thecandidate virtual object.
 22. The haptic model generator according toclaim 14, wherein the instructions to determine reachability datacomprise instructions that, when executed by the processor, cause thehaptic model generator to determine reachability data based on howdynamic a movement of the limb of the user, experiencing the hapticdevice, is.
 23. The haptic model generator according to claim 14,wherein the instructions to determine reachability data compriseinstructions that, when executed by the processor, cause the hapticmodel generator to determine reachability data based on how dynamic amovement of the candidate virtual object is.
 24. The haptic modelgenerator according to claim 14, wherein the instructions to determinereachability data comprise instructions that, when executed by theprocessor, cause the haptic model generator to determine reachabilitydata based on a detected activity of the user. 25.-27. (canceled)
 28. Acomputer program product comprising a computer program according toclaim 27 and a computer readable means on which the computer program isstored.
 29. A system for generating a haptic model comprising a servercomprising the haptic model generator according to claim 14 and a userdevice comprising a haptic device configured to render the haptic model.